/*
 * jQuery Nivo Slider v2.7.1
 * http://nivo.dev7studios.com
 *
 * Copyright 2011, Gilbert Pellegrom
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * March 2010
 */

(function (a) {
    var b = function (b, c) {
        var d = a.extend({}, a.fn.nivoSlider.defaults, c);
        var e = { currentSlide: 0, currentImage: "", totalSlides: 0, running: false, paused: false, stop: false }; var f = a(b);
        f.data("nivo:vars", e); f.css("position", "relative"); f.addClass("nivoSlider");
        var g = f.children(); g.each(function () {
            var b = a(this); var c = ""; if (!b.is("img")) { if (b.is("a")) { b.addClass("nivo-imageLink"); c = b } b = b.find("img:first") }
            var d = b.width(); if (d == 0) d = b.attr("width");
            var g = b.height(); if (g == 0) g = b.attr("height"); if (d > f.width()) { f.width(d) }
            if (g > f.height()) { f.height(g) } if (c != "") { c.css("display", "none") } b.css("display", "none"); e.totalSlides++
        }); if (d.randomStart) { d.startSlide = Math.floor(Math.random() * e.totalSlides) } if (d.startSlide > 0)
        { if (d.startSlide >= e.totalSlides) d.startSlide = e.totalSlides - 1; e.currentSlide = d.startSlide } if (a(g[e.currentSlide]).is("img")) { e.currentImage = a(g[e.currentSlide]) } else { e.currentImage = a(g[e.currentSlide]).find("img:first") } if (a(g[e.currentSlide]).is("a")) { a(g[e.currentSlide]).css("display", "block") } f.css("background", 'url("' + e.currentImage.attr("src") + '") no-repeat'); f.append(a('<div class="nivo-caption"><p></p></div>').css({ display: "none", opacity: d.captionOpacity })); a(".nivo-caption", f).css("opacity", 0); var h = function (b) { var c = a(".nivo-caption", f); if (e.currentImage.attr("title") != "" && e.currentImage.attr("title") != undefined) { var d = e.currentImage.attr("title"); if (d.substr(0, 1) == "#") d = a(d).html(); if (c.css("opacity") != 0) { c.find("p").stop().fadeTo(b.animSpeed, 0, function () { a(this).html(d); a(this).stop().fadeTo(b.animSpeed, 1) }) } else { c.find("p").html(d) } c.stop().fadeTo(b.animSpeed, b.captionOpacity) } else { c.stop().fadeTo(b.animSpeed, 0) } }; h(d); var i = 0; if (!d.manualAdvance && g.length > 1) { i = setInterval(function () { o(f, g, d, false) }, d.pauseTime) } if (d.directionNav) { f.append('<div class="nivo-directionNav"><a class="nivo-prevNav">' + d.prevText + '</a><a class="nivo-nextNav">' + d.nextText + "</a></div>"); if (d.directionNavHide) { a(".nivo-directionNav", f).hide(); f.hover(function () { a(".nivo-directionNav", f).show() }, function () { a(".nivo-directionNav", f).hide() }) } a("a.nivo-prevNav", f).live("click", function () { if (e.running) return false; clearInterval(i); i = ""; e.currentSlide -= 2; o(f, g, d, "prev") }); a("a.nivo-nextNav", f).live("click", function () { if (e.running) return false; clearInterval(i); i = ""; o(f, g, d, "next") }) } if (d.controlNav) { var j = a('<div class="nivo-controlNav"></div>'); f.append(j); for (var k = 0; k < g.length; k++) { if (d.controlNavThumbs) { var l = g.eq(k); if (!l.is("img")) { l = l.find("img:first") } if (d.controlNavThumbsFromRel) { j.append('<a class="nivo-control" rel="' + k + '"><img src="' + l.attr("rel") + '" alt="" /></a>') } else { j.append('<a class="nivo-control" rel="' + k + '"><img src="' + l.attr("src").replace(d.controlNavThumbsSearch, d.controlNavThumbsReplace) + '" alt="" /></a>') } } else { j.append('<a class="nivo-control" rel="' + k + '">' + (k + 1) + "</a>") } } a(".nivo-controlNav a:eq(" + e.currentSlide + ")", f).addClass("active"); a(".nivo-controlNav a", f).live("click", function () { if (e.running) return false; if (a(this).hasClass("active")) return false; clearInterval(i); i = ""; f.css("background", 'url("' + e.currentImage.attr("src") + '") no-repeat'); e.currentSlide = a(this).attr("rel") - 1; o(f, g, d, "control") }) } if (d.keyboardNav) { a(window).keypress(function (a) { if (a.keyCode == "37") { if (e.running) return false; clearInterval(i); i = ""; e.currentSlide -= 2; o(f, g, d, "prev") } if (a.keyCode == "39") { if (e.running) return false; clearInterval(i); i = ""; o(f, g, d, "next") } }) } if (d.pauseOnHover) { f.hover(function () { e.paused = true; clearInterval(i); i = "" }, function () { e.paused = false; if (i == "" && !d.manualAdvance) { i = setInterval(function () { o(f, g, d, false) }, d.pauseTime) } }) } f.bind("nivo:animFinished", function () { e.running = false; a(g).each(function () { if (a(this).is("a")) { a(this).css("display", "none") } }); if (a(g[e.currentSlide]).is("a")) { a(g[e.currentSlide]).css("display", "block") } if (i == "" && !e.paused && !d.manualAdvance) { i = setInterval(function () { o(f, g, d, false) }, d.pauseTime) } d.afterChange.call(this) }); var m = function (b, c, d) { for (var e = 0; e < c.slices; e++) { var f = Math.round(b.width() / c.slices); if (e == c.slices - 1) { b.append(a('<div class="nivo-slice"></div>').css({ left: f * e + "px", width: b.width() - f * e + "px", height: "0px", opacity: "0", background: 'url("' + d.currentImage.attr("src") + '") no-repeat -' + (f + e * f - f) + "px 0%" })) } else { b.append(a('<div class="nivo-slice"></div>').css({ left: f * e + "px", width: f + "px", height: "0px", opacity: "0", background: 'url("' + d.currentImage.attr("src") + '") no-repeat -' + (f + e * f - f) + "px 0%" })) } } }; var n = function (b, c, d) { var e = Math.round(b.width() / c.boxCols); var f = Math.round(b.height() / c.boxRows); for (var g = 0; g < c.boxRows; g++) { for (var h = 0; h < c.boxCols; h++) { if (h == c.boxCols - 1) { b.append(a('<div class="nivo-box"></div>').css({ opacity: 0, left: e * h + "px", top: f * g + "px", width: b.width() - e * h + "px", height: f + "px", background: 'url("' + d.currentImage.attr("src") + '") no-repeat -' + (e + h * e - e) + "px -" + (f + g * f - f) + "px" })) } else { b.append(a('<div class="nivo-box"></div>').css({ opacity: 0, left: e * h + "px", top: f * g + "px", width: e + "px", height: f + "px", background: 'url("' + d.currentImage.attr("src") + '") no-repeat -' + (e + h * e - e) + "px -" + (f + g * f - f) + "px" })) } } } }; var o = function (b, c, d, e) { var f = b.data("nivo:vars"); if (f && f.currentSlide == f.totalSlides - 1) { d.lastSlide.call(this) } if ((!f || f.stop) && !e) return false; d.beforeChange.call(this); if (!e) { b.css("background", 'url("' + f.currentImage.attr("src") + '") no-repeat') } else { if (e == "prev") { b.css("background", 'url("' + f.currentImage.attr("src") + '") no-repeat') } if (e == "next") { b.css("background", 'url("' + f.currentImage.attr("src") + '") no-repeat') } } f.currentSlide++; if (f.currentSlide == f.totalSlides) { f.currentSlide = 0; d.slideshowEnd.call(this) } if (f.currentSlide < 0) f.currentSlide = f.totalSlides - 1; if (a(c[f.currentSlide]).is("img")) { f.currentImage = a(c[f.currentSlide]) } else { f.currentImage = a(c[f.currentSlide]).find("img:first") } if (d.controlNav) { a(".nivo-controlNav a", b).removeClass("active"); a(".nivo-controlNav a:eq(" + f.currentSlide + ")", b).addClass("active") } h(d); a(".nivo-slice", b).remove(); a(".nivo-box", b).remove(); var g = d.effect; if (d.effect == "random") { var i = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade", "boxRandom", "boxRain", "boxRainReverse", "boxRainGrow", "boxRainGrowReverse"); g = i[Math.floor(Math.random() * (i.length + 1))]; if (g == undefined) g = "fade" } if (d.effect.indexOf(",") != -1) { var i = d.effect.split(","); g = i[Math.floor(Math.random() * i.length)]; if (g == undefined) g = "fade" } if (f.currentImage.attr("data-transition")) { g = f.currentImage.attr("data-transition") } f.running = true; if (g == "sliceDown" || g == "sliceDownRight" || g == "sliceDownLeft") { m(b, d, f); var j = 0; var k = 0; var l = a(".nivo-slice", b); if (g == "sliceDownLeft") l = a(".nivo-slice", b)._reverse(); l.each(function () { var c = a(this); c.css({ top: "0px" }); if (k == d.slices - 1) { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed, "", function () { b.trigger("nivo:animFinished") }) }, 100 + j) } else { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed) }, 100 + j) } j += 50; k++ }) } else if (g == "sliceUp" || g == "sliceUpRight" || g == "sliceUpLeft") { m(b, d, f); var j = 0; var k = 0; var l = a(".nivo-slice", b); if (g == "sliceUpLeft") l = a(".nivo-slice", b)._reverse(); l.each(function () { var c = a(this); c.css({ bottom: "0px" }); if (k == d.slices - 1) { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed, "", function () { b.trigger("nivo:animFinished") }) }, 100 + j) } else { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed) }, 100 + j) } j += 50; k++ }) } else if (g == "sliceUpDown" || g == "sliceUpDownRight" || g == "sliceUpDownLeft") { m(b, d, f); var j = 0; var k = 0; var o = 0; var l = a(".nivo-slice", b); if (g == "sliceUpDownLeft") l = a(".nivo-slice", b)._reverse(); l.each(function () { var c = a(this); if (k == 0) { c.css("top", "0px"); k++ } else { c.css("bottom", "0px"); k = 0 } if (o == d.slices - 1) { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed, "", function () { b.trigger("nivo:animFinished") }) }, 100 + j) } else { setTimeout(function () { c.animate({ height: "100%", opacity: "1.0" }, d.animSpeed) }, 100 + j) } j += 50; o++ }) } else if (g == "fold") { m(b, d, f); var j = 0; var k = 0; a(".nivo-slice", b).each(function () { var c = a(this); var e = c.width(); c.css({ top: "0px", height: "100%", width: "0px" }); if (k == d.slices - 1) { setTimeout(function () { c.animate({ width: e, opacity: "1.0" }, d.animSpeed, "", function () { b.trigger("nivo:animFinished") }) }, 100 + j) } else { setTimeout(function () { c.animate({ width: e, opacity: "1.0" }, d.animSpeed) }, 100 + j) } j += 50; k++ }) } else if (g == "fade") { m(b, d, f); var q = a(".nivo-slice:first", b); q.css({ height: "100%", width: b.width() + "px" }); q.animate({ opacity: "1.0" }, d.animSpeed * 2, "", function () { b.trigger("nivo:animFinished") }) } else if (g == "slideInRight") { m(b, d, f); var q = a(".nivo-slice:first", b); q.css({ height: "100%", width: "0px", opacity: "1" }); q.animate({ width: b.width() + "px" }, d.animSpeed * 2, "", function () { b.trigger("nivo:animFinished") }) } else if (g == "slideInLeft") { m(b, d, f); var q = a(".nivo-slice:first", b); q.css({ height: "100%", width: "0px", opacity: "1", left: "", right: "0px" }); q.animate({ width: b.width() + "px" }, d.animSpeed * 2, "", function () { q.css({ left: "0px", right: "" }); b.trigger("nivo:animFinished") }) } else if (g == "boxRandom") { n(b, d, f); var r = d.boxCols * d.boxRows; var k = 0; var j = 0; var s = p(a(".nivo-box", b)); s.each(function () { var c = a(this); if (k == r - 1) { setTimeout(function () { c.animate({ opacity: "1" }, d.animSpeed, "", function () { b.trigger("nivo:animFinished") }) }, 100 + j) } else { setTimeout(function () { c.animate({ opacity: "1" }, d.animSpeed) }, 100 + j) } j += 20; k++ }) } else if (g == "boxRain" || g == "boxRainReverse" || g == "boxRainGrow" || g == "boxRainGrowReverse") { n(b, d, f); var r = d.boxCols * d.boxRows; var k = 0; var j = 0; var t = 0; var u = 0; var v = new Array; v[t] = new Array; var s = a(".nivo-box", b); if (g == "boxRainReverse" || g == "boxRainGrowReverse") { s = a(".nivo-box", b)._reverse() } s.each(function () { v[t][u] = a(this); u++; if (u == d.boxCols) { t++; u = 0; v[t] = new Array } }); for (var w = 0; w < d.boxCols * 2; w++) { var x = w; for (var y = 0; y < d.boxRows; y++) { if (x >= 0 && x < d.boxCols) { (function (c, e, f, h, i) { var j = a(v[c][e]); var k = j.width(); var l = j.height(); if (g == "boxRainGrow" || g == "boxRainGrowReverse") { j.width(0).height(0) } if (h == i - 1) { setTimeout(function () { j.animate({ opacity: "1", width: k, height: l }, d.animSpeed / 1.3, "", function () { b.trigger("nivo:animFinished") }) }, 100 + f) } else { setTimeout(function () { j.animate({ opacity: "1", width: k, height: l }, d.animSpeed / 1.3) }, 100 + f) } })(y, x, j, k, r); k++ } x-- } j += 100 } } }; var p = function (a) { for (var b, c, d = a.length; d; b = parseInt(Math.random() * d), c = a[--d], a[d] = a[b], a[b] = c); return a }; var q = function (a) { if (this.console && typeof console.log != "undefined") console.log(a) }; this.stop = function () { if (!a(b).data("nivo:vars").stop) { a(b).data("nivo:vars").stop = true; q("Stop Slider") } }; this.start = function () { if (a(b).data("nivo:vars").stop) { a(b).data("nivo:vars").stop = false; q("Start Slider") } }; d.afterLoad.call(this); return this
    }; a.fn.nivoSlider = function (c) { return this.each(function (d, e) { var f = a(this); if (f.data("nivoslider")) return f.data("nivoslider"); var g = new b(this, c); f.data("nivoslider", g) }) }; a.fn.nivoSlider.defaults = { effect: "random", slices: 15, boxCols: 8, boxRows: 4, animSpeed: 500, pauseTime: 3e3, startSlide: 0, directionNav: true, directionNavHide: true, controlNav: true, controlNavThumbs: false, controlNavThumbsFromRel: false, controlNavThumbsSearch: ".jpg", controlNavThumbsReplace: "_thumb.jpg", keyboardNav: true, pauseOnHover: true, manualAdvance: false, captionOpacity: .8, prevText: "Prev", nextText: "Next", randomStart: false, beforeChange: function () { }, afterChange: function () { }, slideshowEnd: function () { }, lastSlide: function () { }, afterLoad: function () { } }; a.fn._reverse = [].reverse
})(jQuery)